Cookieを利用する(2) Cookieから情報を読み込む
前回の講座では、Cookieに情報を書き込む方法を紹介しました。Cookieを有効に活用するには、この情報を読み込む必要があります。そこで、今回はCookieに保存されている情報を読み込むためのテクニックを紹介します。

→ Cookieの情報を読み込む
 
Cookieに保存されている情報を読み込む場合もJavaScriptの「document.cookie」を利用します。たとえば、「cCookie」という文字列変数にCookieの情報を読み込むには、以下のようにJavaScriptを記述します。すると、(有効期限)を除いた形で文字列が変数に代入されます。たとえば、「document.cookie = "count="+n+";expires="+expt;」としてcookieに情報を書き込んだ場合、「count=2」などのように「クッキー名=値」だけが変数に代入されます。
cCookie = document.cookie;


→ Cookieに複数の情報がある場合
 
Cookieには、複数の情報を書き込むことも可能です。たとえば、「document.cookie = …」を繰り返して実行すれば、1つのCookieに「count=2」と「namae=makoto」の情報を同時に保存できます。このような状況でCookieの読み込みを行うと、「count=2;namae=makoto」と全ての情報が変数に代入されます。一方、これらのうち実際に必要となるのは「値」だけである場合が多くあります。そこで、情報の読み込みは、次項で紹介するような関数で処理されるのが一般的です。


→ Cookieから情報を読み込む関数
 
以下に、Cookieから情報を読み込む関数の例を示します。この例では、indexOf()とsubstring()を使ってCookieから「値」だけを取り出しています。indexOf()は、指定した文字列の開始位置を数字で返すメソッドです。また、substring(n,m)は、n番目からm-1番目の文字列を抜き出すメソッドとなります。この関数における各行での処理内容は、それぞれ以下のとおりです。

1行目:自作関数「getCount()」の宣言
2行目:変数「cName」に読み込むクッキー名を指定
3行目:変数「cCookie」にクッキーを読み込み、最後に「;」を追加する
4行目:「cCookie」内でクッキー名「cName」が登場する位置を「strat」に代入する
5行目:「cCookie」内でクッキー名の次に登場する「;」の位置を「end」に代入する
6行目:「strat+(cNameの文字数)」〜「end-1」番目にある文字列を「cCookie」から抜き出し、文字をデコードした後(unescape)、文字列を数値に変換する(eval)
7行目:自作関数「getCount()」の終了
function getCount(){
cName = "count=";
cCookie = document.cookie+";";
start = cCookie.indexOf(cName);
end = cCookie.indexOf(";",start);
count = eval(unescape(cCookie.substring(start+cName.length,end)));
}

※次回は、Cookieの具体的な利用例として訪問回数を表示させる方法を紹介します。


e[NECir Yahoo yV LINEf[^[z500~`I
z[y[W NWbgJ[h COiq@COsI COze